import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import '@/assets/css/reset.css'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'
import BaiduMap from '@/components/vue-baidu-map/components'
import '@/icons' // icon
import '@/permission' // permission control
import echarts from 'echarts'
import {Base64} from 'js-base64'
import VueSeamlessScroll from 'vue-seamless-scroll'
import Print from 'vue-print-nb'
import socketio from 'socket.io-client'

　Vue.use(Print);  //注册
//echarts图表
Vue.prototype.$echarts = echarts
//base64加密
Vue.use(Base64)
    // 滚动组件
Vue.use(VueSeamlessScroll)
    /**
     * If you don't want to use mock-server
     * you want to use MockJs for mock api
     * you can execute: mockXHR()
     *
     * Currently MockJs will be used in the production environment,
     * please remove it before going online ! ! !
     */
    
if (process.env.NODE_ENV === 'production') {
    const { mockXHR } = require('../mock')
    mockXHR()
}
//websocket
console.log(process.env.VUE_APP_WS_API)
Vue.prototype.$io = socketio(process.env.VUE_APP_WS_API?process.env.VUE_APP_WS_API:'http://localhost:3001/', {
    transports: ['websocket'],
})
Vue.config.productionTip = false
//使用百度地图 全局注册
Vue.use(BaiduMap, {
    //ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
    ak: 'KcKqDC4GD3MehRv6bLGZEZgeli433c1v'
})
// 防止el-button重复点击
Vue.directive('preventReClick', {
	inserted(el, binding) {
   	  el.addEventListener('click', () => {
     	if (!el.disabled) {
      	 el.disabled = true
      	 setTimeout(() => {
        	 el.disabled = false
       	}, binding.value || 2000)
     	}
   	})
	 }
});
// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

Vue.config.productionTip = false

new Vue({
    el: '#app',
    router,
    store,
    render: h => h(App)
})